La Rotazione parallela rappresenta il cambiamento fondamentale nella filosofia computazionale dal sequenza temporale (fare una cosa dopo l'altra) a un distribuzione spaziale (fare tutto contemporaneamente su una griglia).
1. L'heuristica dell'indipendenza
Questa è la regola d'oro del calcolo GPU: «Ogni volta che il tuo problema consiste nel 'applicare qualcosa in modo indipendente a N elementi', questa è la prima mappatura da provare». Questo approccio dati-parallelo è la mela caduta dall'albero nell'accelerazione GPU, dove il sovraccarico di gestione dei thread è insignificante rispetto al flusso massimo simultaneo.
2. Precisione e carico
I kernel HIP gestiscono tipicamente grandi array di tipi primitivi. Nel grafica ad alte prestazioni e nell'apprendimento automatico, di solito utilizziamo float (precisione semplice), mentre le simulazioni scientifiche che richiedono una stabilità numerica estrema utilizzano double (precisione doppia).
3. Dall'iterazione all'occupazione
Nel codice della CPU, il processore "visita" i dati tramite cicli. Nella logica GPU, i dati "occupano" un thread. Smetti di scrivere come fare il ciclo e inizia a scrivere ciò che un singolo lavoratore dovrebbe fare a un determinato coordinato.
$$\text{Indice } i = \text{blockIdx.x} \times \text{blockDim.x} + \text{threadIdx.x}$$